<template>
  <div>
    <div class="form">
        <!-- 游戏区服 -->
        <div class="form-item">
            <text class="label">游戏区服</text>
            <el-cascader placeholder="请选择您所在的区服" v-model="formData.selectedServer" :options="serverTree"
                style="width: 200px;margin-bottom: 10px;" />
            <!-- <div class="handle" @click="showServerPicker">
                <view class="selected-tag">
                    {{ `${serverTree[selectedGroupIndex].text}/${selectedServer}` || '请选择您所在的区服' }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>

        <!-- 代练类型 -->
        <div class="form-item">
            <text class="label">代练类型</text>
            <el-select v-model="formData.mode" placeholder="请选择代练类型" size="large"
                style="width: 200px;margin-bottom: 10px;">
                <el-option v-for="(item, index) in modeTree" :key="index" :label="item.text" :value="item.value" />
            </el-select>
            <!-- <div class="handle" @click="showModePicker">
                <view class="selected-tag">
                    {{ mode || '请选择代练类型' }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>


        <!-- 通行证 -->
        <div class="form-item" v-if="formData.mode == '通行证'">
            <text class="label" >通行证</text>
            <el-radio-group v-model="formData.selectPass">
                <el-radio value="已有通行证" size="large" border>已有通行证</el-radio>
                <el-radio value="没有通行证" size="large" border>没有通行证</el-radio>
            </el-radio-group>
            <!-- <div class="handle" style="width: 80%;">
                <view class="selected-tag">
                    <el-radio-group v-model="formData.selectPass">
                        <el-radio value="已有通行证" size="large" border>已有通行证</el-radio>
                        <el-radio value="没有通行证" size="large" border>没有通行证</el-radio>
                    </el-radio-group>
                </view>
            </div> -->
        </div>

        <!-- 代练任务（通行证） -->
        <div class="form-item" v-if="formData.mode == '通行证'">
            <text class="label">代练任务</text>
            <el-input v-model="formData.currentLevel" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入当前等级" />
            <el-input v-model="formData.toLevel" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入目标等级" />
            <!-- <div class="handle" @click="showCurrentLevelPicker">
                <view class="selected-tag">
                    {{ (formData.currentLevel === '' && formData.toLevel === '') ? '请输入当前等级和目标等级' :
                        `${formData.currentLevel}级-${formData.toLevel}级`
                    }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 代练任务（排位赛） -->
        <div class="form-item" v-if="formData.mode == '排位赛'">
            <text class="label">代练任务</text>
            <el-cascader placeholder="请选择当前段位" v-model="formData.currentTask" :options="Task"
                style="width: 200px;margin-bottom: 10px;" />
            <el-cascader placeholder="请选择目标段位" v-model="formData.toTask" :options="Task"
                style="width: 200px;margin-bottom: 10px;" />
            <!-- <div class="handle" @click="showCurrentTaskTypePicker">
                <view class="selected-tag">

                    {{ (currentTask === '' && toTask === '') ? '请选择当前段位和目标段位' :
                        `${currentTask}-${toTask}` }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 当前分数 -->
        <div class="form-item" v-if="formData.mode == '排位赛'">
            <text class="label">当前分数</text>
            <el-input v-model="formData.currentScore" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入当前分数" />
            <!-- <div class="handle" @click="showCurrentScorePicker">
                <view class="selected-tag">
                    {{ formData.currentScore === '' ? '请输入当前分数' : formData.currentScore
                    }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 上赛季段位 -->
        <div class="form-item" v-if="formData.mode == '定位赛'">
            <text class="label">上赛季段位</text>
            <el-select v-model="formData.beforeLevel" placeholder="请选择上赛季段位" size="large"
                style="width: 200px;margin-bottom: 10px;">
                <el-option v-for="(item, index) in beforeLevelTree" :key="index" :label="item.text"
                    :value="item.value" />
            </el-select>
            <!-- <div class="handle" @click="showBeforeLevelPicker">
                <view class="selected-tag">
                    {{ beforeLevel || '请选择上赛季段位' }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 需打场次 -->
        <div class="form-item" v-if="formData.mode == '定位赛'">
            <text class="label">需打场次</text>
            <el-select v-model="formData.needGames" placeholder="请选择需打场次" size="large"
                style="width: 200px;margin-bottom: 10px;">
                <el-option v-for="(item, index) in needGamesTree" :key="index" :label="item.text" :value="item.value" />
            </el-select>
            <!-- <div class="handle" @click="showNeedGamesPicker">
                <view class="selected-tag">

                    {{ (needGames === '') ? '请选择需打场次' :
                        `${needGames}` }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 游戏账号 -->
        <div class="form-item" v-if="showOrder">
            <text class="label">游戏账号</text>
            <el-input v-model="formData.account" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的游戏账号" />
        </div>
        <!-- 游戏密码 -->
        <div class="form-item" v-if="showOrder">
            <text class="label">游戏密码</text>
            <el-input v-model="formData.password" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的游戏密码" />
        </div>
        <!-- 游戏角色 -->
        <div class="form-item" v-if="showOrder">
            <text class="label">游戏角色</text>
            <el-input v-model="formData.username" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的游戏角色名" />
        </div>
        <!-- 号主手机（必填） -->
        <div class="form-item" v-if="showOrder">
            <text class="label">号主手机（必填）</text>
            <el-input v-model="formData.phone" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的手机号" />
        </div>
        <!-- 发单者联系方式（必填） -->
        <div class="form-item" v-if="showOrder">
            <text class="label">发单者联系方式（必填）</text>
            <el-input v-model="formData.contact" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入发单者的联系方式" />
        </div>
        <!-- 指定英雄（加价30%） -->
        <div class="form-item" v-if="showOrder && formData.mode == '排位赛'">
            <text class="label">指定英雄（加价30%）</text>
            <el-select filterable :filter-method="heroFilterMethod" v-model="formData.hero" placeholder="请选择指定英雄"
                size="large" style="width: 200px;margin-bottom: 10px;">
                <el-option v-for="(item, index) in filteredHeroes" :key="index" :label="item.text"
                    :value="item.value" />
            </el-select>
        </div>
    </div>





    <!-- 游戏区服选择弹窗 -->
    <el-dialog v-model="formData.serverPopup" title="请选择游戏区服" width="1000" :before-close="hideServerPicker">
        <div class="popup-content">
            <div class="body">
                <!-- 左侧导航栏 -->
                <div class="popup-nav">
                    <div v-for="(group, groupIndex) in serverTree" :key="groupIndex" class="nav-item"
                        :class="{ active: selectedGroupIndex === groupIndex }" @click="selectGroup(groupIndex)">
                        {{ group.text }}
                    </div>
                </div>

                <!-- 右侧选择内容 -->
                <div class="popup-scroll">
                    <div v-if="selectedGroupIndex !== null" class="popup-group">
                        <div v-for="(item, itemIndex) in serverTree[selectedGroupIndex].children" :key="itemIndex"
                            class="popup-item" @click="selectServerItem(item)">
                            {{ item.text }}
                        </div>
                    </div>
                    <div v-else class="popup-empty">请选择左侧分类</div>
                </div>
            </div>
        </div>
    </el-dialog>

    <!-- 代练类型选择弹窗 -->
    <el-dialog v-model="formData.modePopup" width="1000" :before-close="hideModePicker">
        <view class="popup-content">
            <div scroll-y class="popup-scroll">
                <view v-for="(item, index) in modeTree" :key="index" class="popup-item" @click="selectModeItem(item)">
                    {{ item.text }}
                </view>
            </div>
        </view>
    </el-dialog>

    <!-- 代练任务（通行证）弹窗 -->
    <el-dialog v-model="formData.currentLevelPopup" width="1000" :before-close="hideCurrentLevelPicker">
        <view class="popup-content">
            <view>
                <div class="level">
                    <span>当前等级</span>
                    <input type="number" placeholder="请输入当前等级" v-model="currentLevel">
                </div>
                <div class="role">
                    <span>目标等级</span>
                    <input type="number" placeholder="请输入目标等级" v-model="toLevel">
                </div>
            </view>
        </view>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="hideCurrentLevelPicker">取消</el-button>
                <el-button type="primary" @click="confirmCurrentLevelPicker">确定</el-button>
            </div>
        </template>
    </el-dialog>

    <!-- 当前段位选择弹窗 -->
    <el-dialog v-model="currentTaskTypePopup" title="请选择当前段位" width="1000" :before-close="hideCurrentTaskTypePicker">
        <view class="popup-content">
            <div class="body">
                <!-- 左侧导航栏 -->
                <div scroll-y class="popup-nav">
                    <view v-for="(group, groupIndex) in Task" :key="groupIndex" class="nav-item"
                        :class="{ active: currentTaskGroupIndex === groupIndex }"
                        @click="selectCurrentTaskGroup(groupIndex)">
                        {{ group.text }}
                    </view>
                </div>

                <!-- 右侧选择内容 -->
                <div scroll-y class="popup-scroll">
                    <view v-if="currentTaskGroupIndex !== null" class="popup-group">
                        <view v-for="(item, itemIndex) in Task[currentTaskGroupIndex].children" :key="itemIndex"
                            class="popup-item">
                            <div class="popup-item-title">{{ item.text }}</div>
                            <div class="popup-item-body">
                                <view v-for="(item2, itemIndex2) in item.children" :key="itemIndex2"
                                    @click="selectCurrentTaskItem(item.text, item2.text)" class="popup-item-body-item">
                                    <span>{{ item2.text }}</span>
                                </view>
                            </div>
                        </view>
                    </view>
                    <view v-else class="popup-empty">请选择左侧分类</view>
                </div>
            </div>
        </view>
    </el-dialog>
    <!-- 目标段位选择弹窗 -->
    <el-dialog v-model="toTaskTypePopup" title="请选择目标段位" width="1000" :before-close="hideToTaskTypePicker">
        <view class="popup-content">
            <div class="body">
                <!-- 左侧导航栏 -->
                <div scroll-y class="popup-nav">
                    <view v-for="(group, groupIndex) in Task" :key="groupIndex" class="nav-item"
                        :class="{ active: toTaskGroupIndex === groupIndex }" @click="selectToTaskGroup(groupIndex)">
                        {{ group.text }}
                    </view>
                </div>

                <!-- 右侧选择内容 -->
                <div scroll-y class="popup-scroll">
                    <view v-if="toTaskGroupIndex !== null" class="popup-group">
                        <view v-for="(item, itemIndex) in Task[toTaskGroupIndex].children" :key="itemIndex"
                            class="popup-item">
                            <div class="popup-item-title">{{ item.text }}</div>
                            <div class="popup-item-body">
                                <view v-for="(item2, itemIndex2) in item.children" :key="itemIndex2"
                                    @click="selectToTaskItem(item.text, item2.text)" class="popup-item-body-item">
                                    <span>{{ item2.text }}</span>
                                </view>
                            </div>
                        </view>
                    </view>
                    <view v-else class="popup-empty">请选择左侧分类</view>
                </div>
            </div>
        </view>
    </el-dialog>
    <!-- 当前分数弹窗 -->
    <el-dialog v-model="currentScorePopup" width="1000" :before-close="hideCurrentScorePicker">
        <view class="popup-content">
            <view>
                <div class="level">
                    <span>当前分数</span>
                    <input type="number" placeholder="请输入当前分数" v-model="currentScore">
                </div>
            </view>
        </view>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="hideCurrentScorePicker">取消</el-button>
                <el-button type="primary" @click="confirmCurrentScorePicker">确定</el-button>
            </div>
        </template>
    </el-dialog>
    <!-- 上赛季段位选择弹窗 -->
    <el-dialog v-model="beforeLevelPopup" width="1000" :before-close="hideBeforeLevelPicker">
        <view class="popup-content">
            <div scroll-y class="popup-scroll">
                <view v-for="(item, index) in beforeLevelTree" :key="index" class="popup-item"
                    @click="selectBeforeLevelItem(item)">
                    {{ item.text }}
                </view>
            </div>
        </view>
    </el-dialog>
    <!-- 需打场次选择器弹窗 -->
    <el-dialog v-model="needGamesPopup" width="1000" :before-close="hideNeedGamesPicker">
        <view class="popup-content">
            <div scroll-y class="popup-scroll">
                <view v-for="(item, index) in needGamesTree" :key="index" class="popup-item"
                    @click="selectNeedGamesItem(item)">
                    {{ item.text }}
                </view>
            </div>
        </view>
    </el-dialog>








    <!-- 订单信息区域 -->
    <!-- <div class="orderMsg">
        <div class="pay">
            <img src="../../assets/icons/pay.png"></img>
            <div class="text">建议出价 <span style="color: red;">87元</span></div>
        </div>
        <div class="time">
            <img src="../../assets/icons/time.png"></img>
            <div class="text">预计时限 <span style="color: red;">47小时</span></div>
        </div>
    </div> -->
    <!-- 底部按钮 -->
    <!-- <div class="footer">
        <div class="button" @click="submitOrder()">下一步</div>
    </div> -->
    <div class="special-task" @click="changeShowOrder" v-if="!showOrder">
        <div class="label">预约下单</div>
    </div>
    <DLWWQYsubmitOrder v-if="showOrder" :formDataInput="formData"></DLWWQYsubmitOrder>
  </div>
</template>
<script>
import DLWWQYsubmitOrder from '../../views/DL/WWQYsubmitOrder/index.vue';
import { pinyin } from 'pinyin-pro';

export default {
    name: 'WWQYDL',
    components: {
        DLWWQYsubmitOrder
    },
    data() {
        return {
            showOrder: false,
            // 英雄数据
            heroTree: [
                { "text": "铁壁", "value": "铁壁" },
                { "text": "零", "value": "零" },
                { "text": "捷风", "value": "捷风" },
                { "text": "幽影", "value": "幽影" },
                { "text": "不死鸟", "value": "不死鸟" },
                { "text": "雷兹", "value": "雷兹" },
                { "text": "贤者", "value": "贤者" },
                { "text": "猎枭", "value": "猎枭" },
                { "text": "蝰蛇", "value": "蝰蛇" },
                { "text": "炼狱", "value": "炼狱" },
                { "text": "芮娜", "value": "芮娜" },
                { "text": "奇乐", "value": "奇乐" },
                { "text": "海神", "value": "海神" },
                { "text": "星礈", "value": "星礈" },
                { "text": "斯凯", "value": "斯凯" },
                { "text": "黑梦", "value": "黑梦" },
                { "text": "霓虹", "value": "霓虹" },
                { "text": "盖可", "value": "盖可" },
                { "text": "KAY/O", "value": "KAY/O" },
                { "text": "夜露", "value": "夜露" },
                { "text": "尚勃勒", "value": "尚勃勒" },
                { "text": "钢索", "value": "钢索" },
                { "text": "壹决", "value": "壹决" }
            ],
            hero: "",
            searchQuery: '',
            // 区服数据
            serverTree: [
                {
                    label: '默认区',
                    value: "默认区",
                    children: [
                        { label: '默认服', value: "默认服" },
                    ]
                }
            ],
            selectedServer: "默认服",
            selectedGroupIndex: 0,
            serverPopup: false,
            // 代练类型数据
            modeTree: [
                {
                    text: '排位赛',
                    value: "排位赛"
                },
                {
                    text: '定位赛',
                    value: "定位赛"
                },
                {
                    text: '通行证',
                    value: "通行证"
                },
            ],
            mode: "排位赛",
            modePopup: false,
            // 通行证数据
            selectPass: "已有通行证",
            // 等级任务（通行证）
            currentLevel: '',
            toLevel: '',
            currentLevelPopup: false,
            // 段位任务数据
            Task: [],
            currentTask: "",
            currentTaskGroupIndex: 0,
            currentTaskTypePopup: false,
            toTask: "",
            toTaskGroupIndex: 0,
            toTaskTypePopup: false,
            // 当前分数
            currentScore: '',
            currentScorePopup: false,
            // 上赛季段位数据
            beforeLevelTree: [
                { text: '新号', value: "新号" },
                { text: '黑铁', value: "黑铁" },
                { text: '青铜', value: "青铜" },
                { text: '白银', value: "白银" },
                { text: '黄金', value: "黄金" },
                { text: '铂金', value: "铂金" },
                { text: '钻石', value: "钻石" },
                { text: '超凡', value: "超凡" },
                { text: '神话', value: "神话" },
                { text: '无畏战魂', value: "无畏战魂" },
            ],
            beforeLevel: "",
            beforeLevelPopup: false,
            // 需打场次数据
            needGamesTree: [
                { text: '1场', value: "1场" },
                { text: '2场', value: "2场" },
                { text: '3场', value: "3场" },
                { text: '4场', value: "4场" },
                { text: '5场', value: "5场" }
            ],
            needGames: "",
            needGamesPopup: false,
            // 订单提交数据
            formData: {
                server: '',
                mode: '',
                selectPass: '',
                currentLevel: '',
                toLevel: '',
                currentTask: '',
                toTask: '',
                currentScore: '',
                needGames: '',
                beforeLevel: '',
                account: '',
                password: '',
                username: '',
                phone: '',
                contact: '',
                hero: '' // Added hero to formData
            },
        };
    },
    computed: {
        // 动态计算过滤后的列表
        filteredHeroes() {
            if (!this.searchQuery) return this.heroTree;

            const query = this.searchQuery.toLowerCase();
            return this.heroTree.filter(item => {
                // 原始文本匹配
                const textMatch = item.text.toLowerCase().includes(query);

                // 拼音首字母匹配（动态生成）
                const pinyinInitials = pinyin(item.text, {
                    pattern: 'first',
                    type: 'array',
                    toneType: 'none'
                }).join('').toLowerCase();

                return textMatch || pinyinInitials.includes(query);
            });
        }
    },
    methods: {
        changeShowOrder() {
            this.showOrder = !this.showOrder;
        },
        // 英雄筛选方法
        heroFilterMethod(val) {
            this.searchQuery = val;
        },
        // 区服选择
        showServerPicker() {
            this.formData.serverPopup = true;
        },
        hideServerPicker() {
            this.formData.serverPopup = false;
        },
        selectGroup(index) {
            this.selectedGroupIndex = index;
        },
        selectServerItem(item) {
            this.selectedServer = item.text;
            this.hideServerPicker();
        },
        // 代练类型选择
        showModePicker() {
            this.formData.modePopup = true;
        },
        hideModePicker() {
            this.formData.modePopup = false;
        },
        selectModeItem(item) {
            this.mode = item.text;
            this.hideModePicker();
        },
        // 代练任务（通行证）选择
        showCurrentLevelPicker() {
            this.formData.currentLevelPopup = true;
        },
        hideCurrentLevelPicker() {
            this.currentLevel = '';
            this.toLevel = '';
            this.formData.currentLevelPopup = false;
        },
        confirmCurrentLevelPicker() {
            this.formData.currentLevel = this.currentLevel;
            this.formData.toLevel = this.toLevel;
            this.formData.currentLevelPopup = false;
        },
        // 代练任务（排位赛）段位选择
        createTaskList() {
            const tiers = ['黑铁', '青铜', '白银', '黄金', '铂金', '钻石', '超凡', '神话'];
            const taskList = [];

            tiers.forEach(tier => {
                let tierItem = {
                    label: tier,
                    value: tier,
                    children: []
                };

                let subTierItem = {
                    label: `${tier}`,
                    value: `${tier}`,
                    children: []
                };

                const stars = Array.from({ length: 3 }, (_, index) => ({
                    label: `${index + 1}`,
                    value: `${index + 1}`
                }));

                subTierItem.children = stars;
                tierItem.children.push(subTierItem);
                taskList.push(tierItem);
            });
            taskList.push({
                label: '无畏战魂',
                value: '无畏战魂',
                children: [
                    {
                        label: '无畏战魂',
                        value: '无畏战魂',
                        children: [
                            { label: '无畏战魂', value: '无畏战魂' }
                        ]
                    }
                ]
            });
            taskList.push({
                label: '新号',
                value: '新号',
                children: [
                    {
                        label: '新号',
                        value: '新号',
                        children: [
                            { label: '新号', value: '新号' }
                        ]
                    }
                ]
            });
            this.Task = taskList;
        },
        selectCurrentTaskGroup(index) {
            this.currentTaskGroupIndex = index;
        },
        selectCurrentTaskItem(text1, text2) {
            this.currentTask = `${text1} ${text2}`;
            this.hideCurrentTaskTypePicker();
            this.showToTaskTypePicker();
        },
        showCurrentTaskTypePicker() {
            this.currentTaskTypePopup = true;
        },
        hideCurrentTaskTypePicker() {
            this.currentTaskTypePopup = false;
        },
        selectToTaskGroup(index) {
            this.toTaskGroupIndex = index;
        },
        selectToTaskItem(text1, text2) {
            this.toTask = `${text1} ${text2}`;
            this.hideToTaskTypePicker();
        },
        showToTaskTypePicker() {
            this.toTaskTypePopup = true;
        },
        hideToTaskTypePicker() {
            this.toTaskTypePopup = false;
        },
        // 当前分数选择
        showCurrentScorePicker() {
            this.currentScorePopup = true;
        },
        hideCurrentScorePicker() {
            this.currentScore = '';
            this.currentScorePopup = false;
        },
        confirmCurrentScorePicker() {
            this.formData.currentScore = this.currentScore;
            this.currentScorePopup = false;
        },
        // 上赛季段位选择
        showBeforeLevelPicker() {
            this.beforeLevelPopup = true;
        },
        hideBeforeLevelPicker() {
            this.beforeLevelPopup = false;
        },
        selectBeforeLevelItem(item) {
            this.beforeLevel = item.text;
            this.hideBeforeLevelPicker();
        },
        // 需打场次选择
        showNeedGamesPicker() {
            this.needGamesPopup = true;
        },
        hideNeedGamesPicker() {
            this.needGamesPopup = false;
        },
        selectNeedGamesItem(item) {
            this.needGames = item.text;
            this.hideNeedGamesPicker();
        },
        // 订单提交
        submitOrder() {
            const currentServerOption = this.serverTree[this.selectedGroupIndex];
            this.formData = {
                ...this.formData, // Preserve account, password etc.
                server: currentServerOption ? `${currentServerOption.label}/${this.selectedServer}` : '',
                mode: this.mode,
                selectPass: this.selectPass,
                // currentLevel, toLevel, currentTask, toTask, currentScore, needGames, beforeLevel, hero are bound via v-model to formData
            };

            console.log("提交订单1", this.formData);
            this.$router.push({
                path: "/DL/WWQYsubmitOrder",
                query: { formData: JSON.stringify(this.formData) }
            });
        }
    },
    mounted() {
        this.createTaskList(); // Call method in mounted
    }
}
</script>
<style scoped>
:deep(.el-input__wrapper) {
    height: 45px;
}
.special-task {
    width: 40%;
    border-radius: 16px;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); */
    /* margin-top: 5px; */
    /* padding: 20px; */
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    margin: 50px auto;
    /* margin-left: 20px; */
}


.special-task .label {
    width: 100%;
    font-size: 20px;
    font-weight: 700;
    background-color: #6041e9;
    color: #fff;
    padding: 10px 20px;
    box-sizing: border-box;
    border-radius: 16px;
    transition: all .3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.special-task .label:hover {
    cursor: pointer;
    background-color: #3105f8;
}
/* 表单样式 */
.form {
    width: 100%;
    box-sizing: border-box;
    background-color: transparent;
    display: flex;
    align-items: start;
    flex-wrap: wrap;
    padding: 24px 32px;
    background: #fff;
}

.form-item {
    width: 20%;
    margin-bottom: 30px;
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 16px;
    box-sizing: border-box;
}

.form-item .label {
    width: 100%;
    height: 100%;
    display: block;
    font-size: 20px;
    color: #000;
    margin-bottom: 20px;
}

.form-item .handle {
    width: 70%;

}

.picker,
.input {
    width: 100%;
    height: 80px;
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
}

.selected-tag {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 20px;
    height: 50px;
    border-radius: 8px;
    font-size: 20px;
    color: #666;
}

.selected-tag img {
    width: 24px;
    height: 24px;
    margin-left: 20px;
}

.input-group {
    display: flex;
    gap: 20px;
}

.input-group input {
    flex: 1;
    height: 80px;
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
    border: 1px solid #ccc;
}

.dual-picker {
    display: flex;
    align-items: center;
    gap: 20px;
}

.tier-picker {
    flex: 1;
    position: relative;
}

.tier-picker::after {
    content: "▼";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.arrow {
    color: #666;
    font-size: 40px;
}

.picker {
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
    background-color: #fff;
}

.picker::placeholder {
    color: #999;
}

/* 输入框聚焦样式 */
input:focus {
    border-color: #388aff;
    box-shadow: 0 0 10px rgba(26, 160, 53, 0.1);
}

/* 弹窗样式 */
.popup-content {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 20px 20px 0 0;
}

.time-selector {
    display: flex;
    align-items: center;
}

.time-scroll {
    overflow-y: auto;
    height: 500px;
    width: 50%;
    display: flex;
    flex-direction: column;
    margin-right: 20px;
}

.time-scroll .date-display {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: #333;
    padding: 30px 0;
    border-bottom: 1px solid #f0f0f0;
}

.time-scroll .time-item {
    cursor: pointer;
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 32px;
    color: #333;
    border-bottom: 1px solid #f0f0f0;
}

.time-scroll .time-item.selected {
    color: #4080ff;
    font-weight: bold;
}

.time-scroll .time-item:last-child {
    border-bottom: none;
}

.level,
.role {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    font-size: 20px;
    box-sizing: border-box;
}

.level input,
.role input {
    width: 70%;
    outline: none;
    border: none;
    font-size: 20px;
}

.popup-content .top {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    padding: 20px;
}

.popup-content .body {
    display: flex;
    height: 500px;
}

.popup-nav {
    display: flex;
    flex-direction: column;
    width: 200px;
    /* 根据需要调整宽度 */
    border-right: 1px solid #eee;
    padding: 20px 0;
}

.nav-item {
    padding: 20px;
    font-size: 20px;
    color: #666;
    cursor: pointer;
}

.nav-item.active {
    color: #388aff;
    font-weight: bold;
    border-left: 4px solid #388aff;
    padding-left: 16px;
}

.popup-scroll {
    flex: 1;
    display: flex;
    overflow-y: auto;
    flex-direction: column;
    max-height: 500px;
}

.popup-group-title {
    font-size: 28px;
    font-weight: bold;
    color: #333;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.popup-item {
    padding: 20px;
    font-size: 20px;
    color: #333;
    border-bottom: 1px solid #f5f5f5;
    text-align: center;
    cursor: pointer;
}

.popup-item:last-child {
    border-bottom: none;
}

.popup-item-title {
    font-size: 30px;
    font-weight: 700;
    text-align: center;
    margin-left: 20px;
}

.popup-item-body {
    display: flex;
    justify-content: space-evenly;
    flex-wrap: wrap;
    padding-top: 20px;
}

.popup-item-body .popup-item-body-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25%;
    padding: 20px;
    border: 1px solid #aaa;
    border-radius: 7px;
    box-sizing: border-box;
    margin-left: 20px;
    margin-top: 20px;
}

.popup-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 28px;
    color: #999;
}

.popup-group {
    margin-bottom: 20px;
    max-height: 100%;
}

.popup-group-title {
    font-size: 28px;
    font-weight: bold;
    color: #333;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.popup-footer {
    width: 100%;
    text-align: center;
    font-size: 28px;
    padding: 20px;
    color: #999;
    border-top: 1px solid #eee;
    box-sizing: border-box;
}

.popup-footer2 {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: center;
    font-size: 28px;
    color: #999;
    border-top: 1px solid #eee;
    box-sizing: border-box;
}

.popup-footer2 .cancel,
.popup-footer2 .confirm {
    display: block;
    width: 50%;
    padding: 20px;
    text-align: center;
    font-size: 28px;
    box-sizing: border-box;

}

.popup-footer2 .cancel {
    color: #198dda;
}

.popup-footer2 .confirm {
    background-color: #198dda;
    color: #fff;
}

.orderMsg {
    width: 100%;
    display: flex;
    padding: 40px;
    box-sizing: border-box;
    padding-bottom: 200px;
}

.orderMsg .pay,
.orderMsg .time {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.orderMsg .pay img,
.orderMsg .time img {
    width: 60px;
    height: 60px;
    margin-bottom: 20px;
}

.orderMsg .pay .text,
.orderMsg .time .text {
    font-size: 20px;
    font-weight: 700;
}

.footer {
    width: 60%;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 30px;
    font-size: 25px;
}

.footer .tip {
    width: 100%;
    color: #aaa;
    background-color: #eee;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer .button {
    width: 100%;
    height: 100px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: skyblue;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: all .3s;
}

.footer .button:hover {
    background: #3e91ff;
    cursor: pointer;
}
</style>